#include <stdio.h>
#include <stdlib.h>

typedef struct Link{
    char elem;
    struct Link* next;
}Link_;

Link_* initLink(){
    Link_* p = NULL;
    Link_* temp = (Link_*)malloc(sizeof(Link_)); //创建首元节点

    temp->elem = 1;
    temp->next = NULL;

    p = temp;

    for(int i = 1; i < 5; i++){
        Link_* a = (Link_*)malloc(sizeof(Link_));
        a->elem = i;
        a->next = NULL;
        temp->next = a;
        temp = a;
    }
    return p;
}

Link_* initLink_(){
    Link_* p = (Link_*)malloc(sizeof(Link_));
    Link_* temp = p;
     for(int i = 0; i < 5; i++){
         Link_* a = (Link_*) malloc(sizeof(Link_));
         a->elem = i;
         a->next = NULL;
         temp->next = a;
         temp = a;
     }
     return p;
}

//带头节点
void display(Link_ *p){
    Link_* temp = p;
    while (temp){
        printf("%d", temp->elem);
        temp = temp->next;
    }
    printf("\n");
}

//不带头节点
void display_(Link_ *p){
    Link_* temp = p;
    while (temp){
        temp = temp->next;
        printf("%d", temp->elem);
    }
    printf("\n");
}

int main()
{
    Link_* p = initLink();
    Link_* p_ = initLink_();
    display(p);
    display_(p_);
    return 0;
}